草庐IT

Swift 递归枚举

全部标签

c# - C# 枚举中的空格

有没有办法在C#枚举常量中放置空格?我读过你可以通过这样做在VB中做到这一点:PublicEnumEnumWithSpacesConstantWithoutSpaces[ConstantWithSpaces]EndEnum...然后像这样访问它:PublicSubUsingEnumWithSpaces()DimfooAsEnumWithSpaces=EnumWithSpaces.[ConstantWithSpaces]EndSub这对我来说意味着CLR可以处理带空格的枚举。有没有办法在C#中做到这一点? 最佳答案 这篇博文可能对您有

c# - 将所有枚举保存在一个地方是个好主意吗?

当我构建类库时,我通常会创建一个文件Enums.cs来保存程序集中使用的所有枚举。这是一个例子:namespaceMyNamespace{publicenumColors{Red,Green,Blue}publicenumShapes{Circle,Square,Triangle}}这使我的所有枚举都易于查找、组织良好且易于在代码中访问。我想知道为什么这不是一个好主意? 最佳答案 通常按模块化而不是按种类来安排定义会更好。 关于c#-将所有枚举保存在一个地方是个好主意吗?,我们在Stac

c# - Lance Hunt 的 C# 编码标准 - 枚举混淆

我的团队最近开始使用LanceHunt'sC#CodingStandards文档作为巩固我们的编码标准的起点。有一项我们只是不明白其中的要点,这里的任何人都可以阐明它吗?该项目是编号77:Alwaysvalidateanenumerationvariableorparametervaluebeforeconsumingit.TheymaycontainanyvaluethattheunderlyingEnumtype(defaultint)supports.Example:publicvoidTest(BookCategorycat){if(Enum.IsDefined(typeof(

c# - 如何执行完整的递归目录和文件扫描?

这是我的代码:privatestaticvoidTreeScan(stringsDir){foreach(stringdinDirectory.GetDirectories(sDir)){foreach(stringfinDirectory.GetFiles(d)){//Savefilef}}TreeScan(d,client);}问题是它没有获取sDir(起始目录)的FILES它只获取文件夹和文件在子文件夹中。如何让它也从sDir获取文件? 最佳答案 不要重新发明轮子,使用GetFiles的重载,允许您指定它搜索子目录。strin

c# - 在 C# 中递归复制内容的最佳方法是什么?

使用C#和ASP.NET将一个文件夹的内容递归复制到另一个文件夹的最佳方法是什么? 最佳答案 你可以试试这个DirectoryInfosourcedinfo=newDirectoryInfo(@"E:\source");DirectoryInfodestinfo=newDirectoryInfo(@"E:\destination");copy.CopyAll(sourcedinfo,destinfo);这是完成所有工作的方法:publicvoidCopyAll(DirectoryInfosource,DirectoryInfotar

c# - 我们可以使用枚举作为类型安全的实体 ID 吗?

我们在EF6.1代码优先设置中使用一个相当大的模型,我们使用int作为实体ID。不幸的是,这并不像我们希望的那样类型安全,因为很容易混淆id,例如比较不同类型实体的id(myblog.Id==somePost.Id)或类似的。或者更糟:myBlog.Id++。因此,我想出了使用类型化ID的想法,因此您不能混淆ID。所以我们的博客实体需要一个BlogId类型。现在,显而易见的选择是使用一个包含在结构中的int,但您不能将结构用作键。而且你不能扩展int...-等等,你可以!使用枚举!所以我想到了这个:publicenumBlogId:int{}publicclassBlog{public

c# - 我如何在 SQL 中使用枚举而不在我的 SQL 脚本/过程中硬编码魔数(Magic Number)?

我们的C#代码中有枚举:publicenumJobStatus{Ready=0,Running=1,Cancelling=2,}这些值也存储在数据库字段中,我们有很多TSQL(主要是存储过程,以及一些批处理和SSIS)也处理数据:SELECTTOP1@JobSID=JobSIDFROMJobWHEREStatus=0/*JobStatus.Ready*/ORDERBYSubmitDateASCCREATETABLEImportCrossEffect(/*lotsdeleted*/SourcetinyintDEFAULT1NOTNULL--0:Unknown(default),1:Imp

c# - linq to sql递归查询

EmployeeIdNameManagerId------------------------------1Anull2Bnull3C14D35E2就用这张表,怎么写个linq查询(用linqtosql)递归取父数据。例如,如果选择的雇主ID为4,则应给出ID为4、3、1的员工列表谢谢。 最佳答案 这个.AsHierarchy()扩展方法可能有用:link.但是,这只能通过提供一种将结果放入链接对象的简单方法来实现。为此,它只会获取所有记录并运行自己的本地递归查询。如果您正在寻找将通过LINQtoSQL直接转换为递归SQL查询的LI

c# - 如何在 C# 中为枚举类型应用 InterLocked.Exchange?

publicenumMyEnum{Value1,Value2}classMyClass{privateMyEnum_field;publicMyEnumField//addedforconvenience{get{return_field;}set{Interlocked.Exchange(ref_field,value);//ERRORCS0452}}}可以通过以下方式解决:publicenumMyEnum{Value1,Value2}publicclassMyClass2{privateint_field;//changetointpublicMyEnumField//addedf

c# - C# 如何决定将哪个枚举值作为返回值?有什么规定吗?

这个问题在这里已经有了答案:Non-uniqueenumvalues(8个答案)关闭8年前。我发现了一件很有趣的事——比如说:enumMyenum{a,b,c=0}publicclassProgram{staticvoidMain(string[]args){Myenumma=Myenum.a;Console.WriteLine(ma);}}结果是a,为什么?如果我说:enumMyenum{a,b=0,c}publicclassProgram{staticvoidMain(string[]args){Myenumma=Myenum.a;Console.WriteLine(ma);}}结